#[cfg(test)]
pub mod test_vec {
    #[test]
    fn vec01() {
        /* Vector
            - 标准库提供
            - 连续存放
            - java 中的 ArrayList

        删除Vector
            - 离开作用域时， 被清理 其值也被清理
        */
        let mut v1: Vec<u8> = Vec::new();
        v1.push(21);
        v1.push(22);
        v1.push(23);
        let v2 = vec![1, 2, 3];
        let v2_1: &i32 = &v2[1];

        println!("v1[0] = {}", v1[0]);
        match v2.get(1) {
            Some(getv) => println!("v2[1] = {}", getv),
            None => println!("v2 is null"),
        }
        for i in &v1 {
            println!("{}", i);
        }
        for i in &mut v1 {
            *i += 10;
        }
        for i in v1 {
            println!("{}", i);
        }

    }

    #[test] fn vec02() {
        /* 不能在同一作用域内 同时拥有可变和不可变引用
         */
        let v = vec![1, 2, 3];
        let first = &v[0];
        // v.push(6);
    }

    #[test] fn vec03() {

        /* 使用enum 存储多种数据类型
         */
        let row = vec![
            Sc::Int(12),
            Sc::Float(61.61),
            Sc::Text(String::from("str")),
        ];

        for i in row {
            println!("{:?}", i);
        }

    }

    #[test] fn vec0() {}


    #[derive(Debug)]
    enum Sc {
        Int(i32),
        Float(f64),
        Text(String),
    }
}

